export type DataType = "base" | "array" | "object";
export type BaseType = "string" | "number" | "boolean";
// 基本数据类型校验规则
export interface BaseCheck {
  type: BaseType; // 数据类型
  canNull?: boolean; // 字符串是否可以为空
  regExp?: RegExp; // 正则校验
  message?: string; // 正则校验失败提示
}

// 数组校验规则
export interface ArrayCheck {
  type: DataType; // 数组项类型
  length?: number; // 数组长度
  arrayCheck?: ArrayCheck; // 子项是数组
  objectCheck?: ObjectCheck[]; // 子项是对象
  baseCheck?: BaseCheck; // 子项是基本数据类型
}

// 对象校验规则
export interface ObjectCheck {
  field: string; // 字段
  type: DataType; // 字段类型
  required?: boolean; // 字段是否必须
  arrayCheck?: ArrayCheck; // 字段是数组
  objectCheck?: ObjectCheck[]; // 字段是对象
  baseCheck?: BaseCheck; // 字段是基本数据类型
}
